////显示（强制）类型转换
//#include <iostream>
//
//using namespace std;
//
//int main(void) {
//    int a;
//    double b;
//    float c;
//    short d;
//    char e;
//    //任何基本类型变量之间都可以隐式转换
//    a = b = c = d = e;
//    e = d = c = b = a;
//
//    //任何其它类型的指针到void*都可以隐式转换
//    void *pv = &a;
//    pv = &b;
//    pv = &c;
//    pv = &d;
//    pv = &e;
//    //void*到任何其它类型的指针都必须强转（显示转换） *********
////    int *pa = (int *) (pv); //void*-->int*的反向int*-->void*可以隐式转换
//    int *pa = static_cast<int *>(pv); //void*-->int*的反向int*-->void*可以隐式转换
//    double *pb = static_cast<double *> (pv);//void*-->double(的反向double*-->void*可以隐式转换
//    float *pc = static_cast<float *> (pv);
//    short *pd = static_cast<short *> (pv);
//    char *pe = static_cast<char *> (pv);
//    //任何类型的非常指针到同类型的常指针都可以隐式转换
//    const int *cpa = pa;
//    const double *cpb = pb;
//    const float *cpc = pc;
//    const short *cpd = pd;
//    const char *cpe = pe;
//    //任何类型的常指针到同类型的非常指针都必须强转*****************
////    pa = (int *) (cpa);// const int* -->int*的反向int*-->const int* 可以隐式转换
//    pa = const_cast<int *> (cpa);
//    pb = const_cast<double *> (cpb);
//    pc = const_cast<float *> (cpc);
//    pd = const_cast<short *> (cpd);
//    pe = const_cast<char *> (cpe);
//
////    int af;
////    (double) af;
//
//    //除了void*之外，其他类型的指针之间都必须强转
//    pa = reinterpret_cast<int *>(pb);//double* --> int*
//    pa = reinterpret_cast<int *>(38);
//    return 0;
//}